package com.siecom.constconfig;

import android.util.Log;

import java.io.File;

/**
 * Created on 2016/7/18.
 */
public class ConstDefine {



    @Deprecated
    public static String getCtrlPort() {

        final String base = "/sys/devices/platform/msm_hsusb_host/usb1/1-1/1-1.2/1-1.2:1.0";

        File path = new File(base);
        File[] files = path.listFiles();

        for (File file : files) {
            String name = file.getName();

            if (name.startsWith("ttyUSB")) {
                Log.e("getFinancialPort", name);

                return "/dev/" + name;
            }
        }
        return null;

    }
    @Deprecated
    public static String getFingerprintPort() {
        final String base = "/sys/devices/platform/usb20_host/usb1/1-1/1-1.2/1-1.2:1.0/";
        File path = new File(base);
        if (!path.exists()) {
            return null;
        }
        File[] files = path.listFiles();
        for (File file : files) {
            String name = file.getName();
            if (name.startsWith("ttyUSB")) {


                return "/dev/" + name;
            }
        }
        return null;

    }

    @Deprecated
    public static String getFinancialPort() {
        final String base = "/sys/devices/platform/usb20_host/usb1/1-1/1-1.4/1-1.4:1.0/";

        File path = new File(base);
        File[] files = path.listFiles();

        for (File file : files) {
            String name = file.getName();

            if (name.startsWith("ttyUSB")) {
                Log.e("getFinancialPort", name);

                return "/dev/" + name;
            }
        }
        return null;

    }
    @Deprecated
    public static String getIdModulePort() {
        final String base = "/sys/devices/platform/usb20_host/usb1/1-1/1-1.3/1-1.3:1.0/";

        File path = new File(base);
        File[] files = path.listFiles();

        for (File file : files) {
            String name = file.getName();
            if (name.startsWith("ttyUSB")) {

                Log.e("getIdModulePort", name);

                return "/dev/" + name;
            }
        }
        return null;

    }

    public static final String KEYBOARD_PORT = "/dev/ttyS3";//A218
    public static final String OUT_PORT = "/dev/ttyS1";//A218
    /**
     * 心跳间隔
     */
    public final static int intervalMs = 5000;
    /**
     * 加密算法
     */
    public static final int KEY_3DES = 1;
    public static final int KEY_SM = 2;
    public static final int KEY_NOENCRYPTION = 3;
    /**
     * cardType定义
     */
    public static final int IC_CARD = 0x00;
    public static final int MSR_CARD = 0x01;
    public static final int PIC_CARD = 0x02;
    public static final int AUTO_CARD = 0x03;
    /**
     * 模块编号
     */
    public static final int ID_MODULE = 1000;
    public static final int KEY_MODULE = 1001;
    public static final int FINGE_MODULE = 1002;
    public static final int FINAN_MODULE = 1003;

    public static final int HEARTBEAT_MODULE = 1004;
    public static final int OTHER_MODULE = 1005;

    public static final int SIGNATURE_MODULE = 1006;
    public static final int UPDATE_MODULE = 1007;

    //连接模式定义
    public static final int CONNECT_MODE_NONE = -1;
    public static final int CONNECT_MODE_BLUE = 0;
    public static final int CONNECT_MODE_BLE = 1;
    public static final int CONNECT_MODE_USB = 2;
    /**
     * 功能请求
     */
    public static final int ID_READ_REQUEST = 1;
    public static final int ID_RESPOND = 2;


    public static final int IC_REQUEST = 3;
    public static final int IC_RESPOND = 4;

    public static final int PIC_REQUEST = 5;
    public static final int PIC_RESPOND = 6;

    public static final int MSR_REQUEST = 7;
    public static final int MSR_RESPOND = 8;

    public static final int AUTO_REQUEST = 9;
    public static final int AUTO_RESPOND = 10;

    public static final int AUTO_CHECK_REQUEST = 9001; // 自动检测卡 返回检测到的卡类型
    public static final int AUTO_CHECK_RESPOND = 9002; // 磁条卡则返回读取到的磁道数据
    public static final int PIC_LOG_REQUEST = 11;
    public static final int PIC_LOG_RESPOND = 12;

    public static final int IC_LOG_REQUEST = 13;
    public static final int IC_LOG_RESPOND = 14;


    public static final int ARQC_REQUEST = 15;
    public static final int ARQC_RESPOND = 16;

    public static final int FINGERFEARURE_REQUEST = 17;
    public static final int FINGERFEARURE_RESPOND = 18;

    public static final int FINGER_REGIST_REQUEST = 1701; //指纹注册登记
    public static final int FINGER_REGIST_RESPOND = 1702;
    public static final int FINGER_VER_REQUEST = 19;
    public static final int FINGER_RESPOND = 20;

    public static final int INPUT_MAIN_REQUEST = 21;
    public static final int INPUT_MAIN_RESPOND = 22;
    public static final int INPUT_WORK_REQUEST = 23;
    public static final int INPUT_WORK_RESPOND = 24;
    public static final int INPUT_KEY_REQUEST = 25;
    public static final int INPUT_KEY_RESPOND = 26;
    public static final int SET_ENCRYPT_REQUEST = 27;
    public static final int SET_ENCRYPT_RESPOND = 28;

    public static final int SM2_NEW_KEY_PAIR = 101; //生成SM2密钥对 并返回公钥

//    public static final int HEARTBEAT_REQUEST = 29;

    //SM2或者RSA公钥加密随机主密钥
    public static final int SM2_RSA_MAINKEY_REQUEST = 29;
    public static final int SM2_RSA_MAINKEY_RESPOND = 30;

    public static final int DEVICE_SERIAL_NO_REQUEST = 31;
    public static final int DEVICE_SERIAL_NO_RESPOND = 32;

    public static final int CODENAME_REQUEST = 33;
    public static final int CODENAME_RESPOND = 34;
    public static final int GET_CODENAME_REQUEST = 35;
    public static final int GET_CODENAME_RESPOND = 36;
    /**
     * 取消请求
     */
    public static final int CANCEL_FINAN_REQUEST = 37;
    public static final int CANCEL_FINAN_RESPOND = 38;

    public static final int FINGER_CANCEL_REQUEST = 39;
    public static final int FINGER_CANCEL_RESPOND = 40;

    public static final int IDENTITY_CANCEL_REQUEST = 41;
    public static final int IDENTITY_CANCEL_RESPOND = 42;

    public static final int KEYBOARD_CANCEL_REQUEST = 43;
    public static final int KEYBOARD_CANCEL_RESPOND = 44;

    public static final int SIGNATURE_REQUEST = 45;
    public static final int SIGNATURE_RESPOND = 46;

    public static final int SIGNATURE_CANCEL_REQUEST = 47;
    public static final int SIGNATURE_CANCEL_RESPOND = 48;

    public static final int UPDATE_FW_REQUEST = 49;
    public static final int UPDATE_FW_RESPOND = 50;

    public static final int RESET_REQUEST = 51;
    public static final int RESET_RESPOND = 52;

    public static final int TMK_REQUEST = 53;
    public static final int TMK_RESPOND = 54;

    public static final int TMK_DECRYPT_REQUEST = 55; // 加解密数据
    public static final int TMK_DECRYPT_RESPOND = 56;

    public static final int FINGER_PIC_REQUEST = 57;
    public static final int FINGER_PIC_RESPOND = 58;


    public static final int PIC_LOAD_REQUEST = 59;
    public static final int PIC_LOAD_RESPOND = 60;

    public static final int IC_LOAD_REQUEST = 61;
    public static final int IC_LOAD_RESPOND = 62;

    public static final int AUTO_LOAD_REQUEST = 63;
    public static final int AUTO_LOAD_RESPOND = 64;

    public static final int AUTO_LOG_REQUEST = 65;
    public static final int AUTO_LOG_RESPOND = 66;


    public static final int TMK_OLD_REQUEST = 67;
    public static final int TMK_OLD_RESPOND = 68;


    public static final int RESET_KEYBOARD_REQUEST = 69;
    public static final int RESET_KEYBOARD_RESPOND = 70;

    public static final int START_LAUNCHER_REQUEST = 71;
    public static final int START_LAUNCHER_RESPOND = 72;

    public static final int LIGHT_TEST_REQUEST = 73;
    public static final int LIGHT_TEST_RESPOND = 74;

    public static final int PSAM_TEST_REQUEST = 75;
    public static final int PSAM_TEST_RESPOND = 76;

    public static final int SERIAL_TEST_REQUEST = 77;
    public static final int SERIAL_TEST_RESPOND = 78;

    public static final int SIGNATURE_INIT_REQUEST = 79;
    public static final int SIGNATURE_INIT_RESPOND = 80;

    public static final int SIGNATURE_SM2_REQUEST = 81;
    public static final int SIGNATURE_SM2_RESPOND = 82;

    public static final int SIGNATURE_SM4_REQUEST = 83;
    public static final int SIGNATURE_SM4_RESPOND = 84;


    public static final int  CALCMAC_REQUEST= 85;
    public static final int  CALCMAC_RESPOND= 86;


    public static final int  TEMPLET_REQUEST= 87;
    public static final int  TEMPLET_RESPOND= 88;
    public static final int  MATCH_REQUEST= 89;
    public static final int  MATCH_RESPOND= 90;

    public static final int  CHANGE_BLUE_NAME = 91; // 更改蓝牙名称
    public static final int RE_START = 92; //重启

    public static final int DISCONNECT_BLUE = 93;//断开连接
    //获取设备版本号
    public static final int  GET_DEVICE_VERSION_REQUEST= 94;
    public static final int  GET_DEVICE_VERSION_RESPOND= 95;
    //获取电池信息
    public static final int GET_BATTARY_INFO_REQUEST = 96;
    public static final int GET_BATTARY_INFO_RESPOND = 97;

    //检测各个模块信息
    public static final int CHECK_MODULE_INFO_REQUEST = 98;
    public static final int CHECK_MODULE_INFO_RESPOND = 99;

    //获取银行卡或身份证是否已取走
    public static final int CHECK_IS_CARD_OUT_REQUEST = 100;
    public static final int CHECK_IS_CARD_OUT_RESPOND = 101;

    //蜂鸣
    public static final int MAKE_BEEP_REQUEST = 102;
    public static final int MAKE_BEEP_RESPOND = 103;

    //语音控制
    public static final int MAKE_VOICE_REQUEST = 104;
    public static final int MAKE_VOICE_RESPOND = 105;

    //活体检测
    public static final int ALIVE_CHECK_REQUEST = 106;
    public static final int ALIVE_CHECK_RESPOND = 107;

    //IC卡上电 (非接和插卡)
    public static final int ICCard_POWER_ON_REQUEST = 108;
    public static final int ICCard_POWER_ON_RESPOND = 109;

    //IC卡下电 (非接和插卡)
    public static final int ICCard_POWER_OFF_REQUEST = 110;
    public static final int ICCard_POWER_OFF_RESPOND = 111;

    //IC卡apdu (非接和插卡)
    public static final int APDU_COMMAND_REQUEST = 112;
    public static final int APDU_COMMAND_RESPOND = 113;

    //检测卡 (非接 插卡 磁卡) 读取三合一接口当前的卡片放置状态
    public static final int BANKCARD_PUT_STATE_REQUEST = 114;
    public static final int BANKCARD_PUT_STATE_RESPOND = 115;

    //读社保卡
    public static final int READ_SOCIAL_CARD_REQUEST = 116;
    public static final int READ_SOCIAL_CARD_RESPOND = 117;

    //启动手写屏
    public static final int START_SCREEN_REQUEST = 200;
    public static final int START_SCREEN_RESPOND = 201;
    //关闭手写屏
    public static final int CLOSE_SCREEN_REQUEST = 202;
    public static final int CLOSE_SCREEN_RESPOND = 203;
    //接收手写屏坐标轨迹数据
    public static final int GET_SCREEN_DATA_REQUEST = 204;
    public static final int GET_SCREEN_DATA_RESPOND = 205;
    //接收手写屏图片数据
    public static final int GET_SCREEN_SIGN_IMG_REQUEST = 206;
    public static final int GET_SCREEN_SIGN_IMG_RESPOND = 207;


    //IC卡 卡执行脚本
    public static final int IC_EXECUTE_SCRIPT_REQUEST = 301;
    public static final int IC_EXECUTE_SCRIPT_RESPOND = 302;

    //检查秘钥是否存在
    public static final int CHECK_KEY_EXIST_REQUEST = 303;
    public static final int CHECK_KEY_EXIST_RESPOND = 304;

    public static final String LOG_DIR = "/sdcard/";

    public static final String BLUE_NAME_PRE_A108P = "A108P-" ;
    public static final String BLUE_NAME_PRE_UPD = "UPD1080-" ;

    public static final String SP_FILE_NAME = "A108Plus" ;
    public static final String SP_KEY_BLUE_NAME = "A108pBlueName" ;

    public static final String SP_KEY_BLUE_Device_ID = "BLUE_Device_ID" ;

    public static final int VOICE_AGAIN_ENTER = 10;
    public static final int VOICE_OUT_FINGER = 11;

    public static final int OPERATE_SUCC = 12;
    public static final int OPERATE_FAIL = 13;

    public static final int VOICE_INPUT_Validate_code = 14;
    public static final int VOICE_swipe_card_or_passbook = 15;
    public static final int VOICE_PWD_TOO_SIMPLE = 16;

    public static final int VOICE_DEVICE_CONNECT = 10000;
    public static final int VOICE_DEVICE_DISCONNECT = 10001;

    // 0键盘  1指纹 2IC卡  3磁条卡  4蓝牙 5 身份证
    public static final int LED_KEY_BOARD = 0;
    public static final int LED_FINGER = 1;
    public static final int LED_IC_CARD = 2;
    public static final int LED_MSR_CARD = 3;
    public static final int LED_BLUETOOTH = 4;
    public static final int LED_ID_CARD = 5;

//    public static  String TEst_finger_data = "0A20323238623431636631313431343434326138373131303033653064613266303910EA07183A28003201303A0042894189504E470D0A1A0A0000000D494844520000004C0000006408060000002C68D6700000000473424954080808087C0864880000200049444154789CED9D79909D5779E67FDFED45AD6EED8B65595E8424E30513873819B604F0840126CC405852218E2B13631BDBB2144B966CD9926CED966459ADDD0990196C8A254332950C454D4855082920E324108CC10663BC63C9B26459BBD4522F67FE78DE47E7DCAB6EB55A364CA8E25475DD7BBFE57CE7BCE75D9E77395FC3CFA12D84F46148E5B1399096341CFB4568D5CFFA01F7439AF92A9E732FA4563265FF19980A74014780CB81593F8779FC4CDAC6068E593F080775425A5D5C732FA4C63E066B1B206DFA05E454EE2E06BD115267C3246E6BF8BD09D23DAFE1443BCF80D8FFDFDA9C62A02BFB21C4DAF8BD02D22248CB0698D83D90EEFE773EE93392FD2590BA80B550CD86B425FA990FA906DC5BF47BA7C4AE5A06A90F58D6F0CCDB21F940BBFAAE401C53030E002381B971DC3A713DA443402FA2700B3002E803F6032B7E467A6DC89D76423A022C866A0DA43B8A09DE5AF4B71A522FB01718072C6A78D66C48CD400FB0A538B715D25E601822568588D10C0C070EC6B9A3C0F1F86C4284AA01DDF1FD75C033C840CC7B0D8937A48E96431A062C80EA7648E6A49990260377C5EF79B1FA9F6CE87F1EA4D140079ADCDC86F39BE2BE5634F176600E545B216D075617D7AF87341021E6C738FB8051F1AC05AF11D15E73B6DD189C33AB61723D8853F601CB8B73B3211D446255212E7A23301814D902693654DB20DD7C8A6BB7423A8660488538B21DB8F30CE73EE49B3CD0FECE5D0B693FF02E44B0B9A1EB9AD04ADF53DCB72A74DAE8387FAA49976D39A4E14877D580A710B1DB11573E0BBC0DA980A5909616FDFE6748A380366006592286D206BDE14390AE403AEBB7217DAD10BB978107E3F71A488779F5CAF6EEE04690E88E001E8ACF56E0FE86FE5705471F89F38DBAF2E7DA4A40B8A5F8BE0DD2D63334FF7F1CF79580753DA48F85FB3413D27C1990D7045E6C9415AFEB6BE1ABE87BC8ABB118D248EA95E82AE1AB0AC491A381078AF3D7424A88634A8BB8388EF721B16C06960E32A615909A80855075427A0A89E770A4A75ECFC9C6A413D2F7E2199F816A31A431882BEF1E220D8674F1ECB0860BE3BE1B20D9126E090BD70EDCF22AC46241107C2F62833DC0B9C01844102FCCFD41ACF5502D09311E86208C0D481FF027838C6503A446029FAA0D78E146482F22700A700BA4894897F99AD5906C6D0C507D6E45E8B473C916737EE8BD26C41113C81C352FF05705FCF73320F89A3030478A498D039E23EBBDFB213D8780ED0CA4F376A0453E5D4E1BF0A27990D6C7F93990262153BC0ED20BC03964B19C1B68FD02C45DF363C537C6F98D71CFC118E4B9D48BF46C488DC7DCEE28C41604562D7E15B021EEB90ED274C499C687B78641980CEC8CE7DAC22F082BBDEEB510C9DB20AD2B887516590CEF09A4BFB210CB0A380F4184EF036793B1D6CD905A90B8AC2D9EB71ED201E070DC771754F7062CD90F6C856A11A45DC085C0ED502D0C71DD8120452D08B92116A905418BA686672D0DAC570B627B6CB3E29E5EE06206C77EFD126C1324EBA02D3160438592907EE039053157436A232BDD85904614E7CB766F0CF610B02B087ADFAB8404AB42E4AAF86B46FA6C5B48C6E3080F8E8EEB4723F7A927AEBB087916A7C29A030E705DB0ACC5A4D1159917CEF13AA83640FA17E02FE2FCC720ED8ECEFFBEB8E7EA009DE3E2AF5104B7421A281868A77B6988592F3016780C71E418A4134701FF12C4780239EEC38069419C8BE2DE98E349CF6AF4894FD936073EF910A4771758E57721DD55FCBE0DD2025EBBF8D3B6E8671BA43FEE0737F5D76E954B943691038867329EC630F92720DD778A7E4EA2E44A1412BEBD50D8738AEB36852859DEEF81B410855B8E20A5DBD9C089BD08A95BEF6D85F4245AE926B27170BB2D147D2BF5EED4E9B435616D6BF1FB45603AB2849690AB20BD840C4842A25B21DD3B09381F1888CB9A1B0F94C45A03E978716E15A457A88F693DA7CED313C0A564FF6C654088D751EF88AF80B48F9389B4318E5BDC96349CB76E5D12AA6202F03272A6C723B1BB15AA3B0698A8C3E5CB83211AAFDB14FD36716AEC76E2C4CAB024B62E3741FAD3E2FC4D01153E1DC79604414096E952A430411C52A1952A3158A3F5BA1DD251E40CF7928380A7EB14CF0A9D08F222F621BDE6BEFAEB676B6131FB1030B697E198DA18CDE1D41CF622B22668E2694271D182800026D6DD90F620C55A8ACCCC58A51E323E5A55180013EBFA10B9FD717C4BC3E06E0A6E68431C64B8D08C38B619E1BDAD50F59795BA25D4C0DC18374872FE142A2FE01FC5356DE4002568C18EF547A9682750FC26A85643DA1183BAB5205E02361562BA939345EA8620561F19A92F0A6219972D0AAE1CDECFFD6E0B2135EAAD95D18FCD7F091B8EC7F716EA816CD9E6C4D87A637C63A80F46CE0BBDDC157D4E62600EAB4A9766268A17AD89DFD70474300166874EB3FF781DA43FD7AAA584C09FF1CBF27055CAC92F46C13C9BF38DC81F3C1644EC465CD78DC4B919A1F31D453F6B628C7B10869B043C1FFD27B27835D3BFC158125C5703CE8A6386371F8FF99AE31A391FA05A09693154D787187CBA204E37F067F1DB2E8AC56A6D106F1C396E6FD158108A7545F1FBF9985C17B01B29E963716C1F8A322C6DB0CC0BE399B698CB075875B76D901E8DEFA39017B11D895D0DF87CE132ED887E2790636DCD31B614F7ACEF8F60FE722AAF7D69B0B4077C15A42FC4F77741FA2852EEF742FA3AF2DDFE47716D07E29A6EE442AD1964E203B5CD90BE1593E9469CF06C4CF4BD8853EE0B58F10412D7F14804ADE8CF8F49DBFBE88C45B1ABB58BCCA1C381F90D63AD40A1DB7720E7FA6A14A6F99BC2BDA9210CD519B26EB12BDDA833696B217D27266F717259C0B098F088385EC5F14BE25E23CBA1846640FABA29FA5C87325F8F22F14E48024CBCC9C09BA80F9F578B208D43A06E3EA40BC80439DDB621886AE27D22F4570BF02BC5F1AB20FD3488703806F586A29F76068F1E345AC57BC2DA59F97F3F3ECD4DADD44319907A39822CF0C564407BAA4C94DB6911E60694B6DA0CD566485F02BE15F77E2056ECAF0BC8D0427DEC7D6B80D28AA1C5DCEF87F46F9C1C1F9B05696B3FFD7C18C5EC6C49DB902EEB40FAB2110CF7D7D6215FB585FE8B5C4E28F4A780BF8CDFBF1F88FED791F9B5433A1F85A7FDE01590CE24F3E27627A4EFC620BE5A58E67D649765243005E9A0A3C848F4200EB2CBB5780863B8390C520D11D4592703D703885B2720477D69A30E5B1B4A724DC1962D0C1EDA2DDBF230D50ECF6C08CEE8460AB74CE8AE4131AFF1C8BAAE2ACE79759B6242A753C6B42CEEE9437AEF45FAC762EB5144C549641051C6922DE49F0473D4C838AF31FD5797BB9B13EECF79C8E2AC0D9DD38D22AC4BA0BA16D20C7222F4DAD0210F145EC02EB47A1B43473AC57F849C4FB4486D83F403B2129FC6C921A56581BDE6425572F5EAE096578017C8C6C24E7D738CA324A001B6117E5F5C67477F71D0C051DE03083219AB56205DF1583CC8B8CB49D8C3C0670BA05AE606AF4301434FFE3614C72F63E88F92FDB60AF99C5EB54E1435680C152F41AE9709D015C73B62028E92B6923D9015C87F5D0CD51D318E2948E46C79C7C7FD16C116C4E5B6C27D716E2CD279265C2B8A78DC0C5575078AB737175C7253AC42294AB343543BA15A85122413C9FAECFA00BABF8E44E9C600B65DF1D0E9E4F0CEC2E0CA83418414836B8DEB87C5A08D95D685D1A9013F45DEC0F198604770CBE1F89C86446B632CF833410C2787417A2F212BFA4AF467E234170B5C8BDF231097CD85AA7924F0B98230CB423A4C885B83455D65F3F110A12971CD9240F15391057C00E9A9C4C9F50BEB427F554899379AFB819AD365F7435A1BAAC262BB19451F26C6758791A876531FC2591C7AB63BE6D2073C89B86E22E2D86105F12D92FBD022BE14FD54BF0FE97F46C7EF0E4CF6A5F87D434CFC228455D686A8B423EBB10CD260A6BA1339CED62B2DD4BB38B742EA0C00F937E4F07189B6ABB8B71BD5B4B6C56426D23F702DB1DA6DA1368E07A11C9232783D109FBDF19C8331C61A124BEBB876948C396348E06697EA8E8003C7C96ED19581D19AC9B0C16D7E2C467FFEDA509A434A7D486C1E451CF15B71EC9F10A1EC295C86887136FD2767066B15082D131DDD01D5DDE11E9D8F82827786FE32672C08053B0E45671BC57833726EFB902EB2686E4001C361885BFA8B8EBAAAA73BAEB3E2FF697CAE433EEBED034C76792C4433F520794BF4DB1F54F0982B24A63E995024C450A79950CEB598D8C8B8A82C409B19C4B235F2804C9C467DB528FAAB511FCABE35B8ADD1F5D91220B9991C2C34F4A810B7D8D7AC1070B535ABA105F3648909FA9C0BEA9AE258225735FAFA63645CE6FA0F8BA02B1C8DD39A81EA8F207D36B8646F74E0EA3D879E67A398576FDC743E0AB05D1FC72C82D7159CDA81F0CF75A1806BA810C4849A1DDCE668EA794827CD0CECB6AA1F2E981770A13DAEED897B5D90D7A605AC6E8B4518110432310C1140BAD161ED3E72B317E087F7C4B54D88A92AC7EE17A368E84414C7BA3110F456A896A304A9C3BCCBC23276C7B119289CE201198EDC18A27D0552CE77869EEB255B5934C9E462385B2B133EA11284DDC87A5D84A2C133C93EDF31B28E6A4650A115F8F3E87F25A49F90C5DB095E1713432E2E3637BABF57E29E6141E00AE0F782536AC05F0537ED8CEF9B203D1C03F81454F3C23C3707F140B8CD56AC2416C8B23421655CC56A99102E3EF1E08C7BECEA80F46417E214E3346796128A9A76232FC278CE0BE73E89FE1C47B391303E33E6F2B52D716D17124B8B68BB09760DB97EEB1C14FE756EB10C616F0E907B0CC58AB6A3F071531066155437077AAF016F07BE17037FA08190CDF1BCF1E4B45E9975BE1B928D4C638982DB1A483F22C30E8220A54E729AD0CE7A15C43417379143439017D48B323CAE1D15FD55B7046B8F47D1C697802F427543E89876B2BBF43B2826FFB500915F42CE753BF005A8E6906B5AA723D1298BED9C3D6F2CEB5C113AC762F2722CC0938873BA8B49130B518BB11E8A6B5C2F51BA3E3DB1284DF17988AC8FDC2AEAB97C3FF5C9DA5D649D3C09A8DE01691AD2413D4851BE0FF85BE04A72DDD4C7C32C3F50F86ECD9C8CE6CBFA884E94E10671A49DE6B921E63DC80A752185BA0745542F445E40098CD704E7B692F50E05013C883D642E5902D5270AAB0DF034593413D28D8E8E54481F3B23DE83221AC3624196437546A0714E400D8BC93B83989723C56D6EE906AE262778AF817429D9E40F67E83BD13A5104C5133D0FF811D2877D081AD91FB44577915D0F8AB0B6727AA54DFDB56A430132D787883E478EE9BF33F4DB378ADF2DE4AA9CEB8358675235E8D619A29E5088D9BAA6067C8B6C041CF36A45C4FA208214D310671D479C69905A63F070BB8B8FAD07BF1FC76BE450D14564E6A83E1AA2752E52E6C790350429E87391B8DC8C12BD43DD10F0B100951D6433BF00D2D78240A3E3CF3B402E8BC13BA0B90E453D6A8843068BF06E0A3D6A6BFB43F20DBDC0E3F1DB3AAD852C9290F70D185A94F52210B0C1498ACD901A23AD9D31E0B6E8E46964499F8F8E1D0B7B4FACEAFB904EFAD71884397535A4676340A3C880720A432B222E23158B50687D2C52032043D14AAEAF984C766D7A10CE34BCE9413A0B24A283ED2A8142B7D84A5C802CC50B88EBB693C31D6FD480AB0FA2D24907167F0FE51E1F40654F4F20E3B11E258A13B2681EF439D19F63F15BC34A1E8AE7DAA4B7201CB68BBCEA67233D7538CEBFDA8D14F7C6F8BA1053FC98CC5D2E56B1D23F87B022FB11003C84F4406F1067110A49DB89AEA1E2DAD1E4C2953F0CE29D87DC8C3D64D19B1B00D85B55168567715910E600F580D3089C18F088F8EE6D7EB676265E19C99D1804DC45C66253D04295C52506AA06BE6614878C5C2B46F461C0EAE043CD267D0B5413113B8F8FC9DD858273A31090DD1E83D986C2397F00A91D85A49F0C621E4579C9FF166ED064E4432E0ABFF200F01DC4B98790D97E00AAD1E418972DDC4824F2B520DE835079E15A1B26BE1B45348E04517A50ED5A773081F390C675F6249AA877C50C545BE2EF603C63A217F27763C55786DBF3584CB203E9AB84624B8F20517D3F42EFAF44875F82CA8AFD8BC191DE6460E3B12C3C84BEE87B1CF09318C8A750F0F07BC5805D090DB9CCC9DC742C9E3B09714F3739A171387E8F8D8942B6B8C38370F6258F530F604D30EFBAB31EEC4270C9D0A8BA1CD25B1032FF72747605F0EDE8F037C95EBD2D976B4A6F09247F8C1C2B9B83B2E7550C6A47FC19C5FF158A903C8DB8AB2B16C2E87C420CF88DF17C5BCF65A86EE2305964ECFA1882187A18D91F419C6CDFB5A2DE2572F95355F4D15B7C76201C5742934115E6E6200828A47313A4678037C764BE0E7C17453BFE37F05F504AEAC361DEDF847CCC9531D9D5833C73552073C3170737FB90D84D8B41DB2A7E3D8E9B50AED4A921916E8FEB86C5EFFD6471AC2145EEE060E2E412D3652801E36067F551546750FA699F8D07BF07F8BFF1B0BF0F5F71272A2FBF3300EF83E4C06213839702F83D1466F18FC4F32F45EED94F632CE706215CC365824C8FF3135090B3B16879B0E63A108240C665768D1EA55E548F21A25F4E5849F4E0741C39D2C3C88902CBB42317E5761A3BD5CBC3CA7ADFB5930B93112BAF0FF1EB238783D6A2F8D76EA4CF3CF80A2DD48210F5310830AF8F559E1586C8852C0E6836A6C7CA091F205B46904133C1DA90AE2B81ADFD5213D0623C0A65AE9A7D61731C3C8494A6758EC571717804A092A1B1C5809A8BCE2D36CFA1F0F6D3E4D83C227E720460447C1A492F43191E6292BB91EBE26AE9B961B51D563E0F89D91E323CB0C855644BE7E7B7226EB11EB441B1EB65DD679DE7345B89F5AAAB50F0F0DCE8682762F7BD71C195C03763C023E2E10791F2FE6858C75171BE1761B44FA1F0B5838C3786FFE954570B0A19DD1430635C4CDA0B577288EBB5AAE2BC17E8BC18936BFE6D01F7920DC8CE825806C25510FD38629051643C68C00A79911F280856EB42E8794A507346DCD41AD47E3E1EF465A89CA29A81D2F9A351C5CF98B8677A10EBDA10F10B1067EE8D497C12AA8B11077F8CBCDD6F545CFB6BC897249EFF59A8DAE2DCC5488446927DBFE751A4C2A19A2368D15BA3CF0948CD8C459C751459CD1710279E1F0BF85210FC60FC1D8A7E8E076DCA7682723351C0F033505D438E8AEE470AAF2706372D8E79DFE317A0FA500058739AB1D2F968F52720003A13C5F81D49A890223D10C47E2206EB675B4CFC5A06EB2DFB88A3634C8710A7B9D885B8773CB2A62363F2AE68847ACFA12DE677BC386EEE3A1673AC23D81F84221D418E9F972EC357A07A7F58970B1027F6A055B3BE682747345D153D815C6E5E43AB371929F51B439CCB04C630A41A5E4619A74FA0ACF99BC9D1D7523F39B3453CAF3916E02C7268DC1B1F4A7767137A17C68FD10297C4709C6D04B9AABB851C44A87E27380BC4BA764FFC5693BF468574079148DD19BEE5C820EC21845D9E22679CAE0E87F6F3219ECFC740FF2E50FDB7C8C98AB662328EAF3BDE7F24066EC53D3A9EBB0B718F536CAE98EE8905B7F841B692D64D3BE2B85D2B1B9096B86E3C59254D8FC57388BA13AAE6FFD380619CFA2FF70C3691B3418FA180DAE331A80B81BF20E3954B203D82827BFF2940EEDB91E8BC3FDCA6B79381E9B6C06120605C263F960464B11876C584AD2A12C24D5362623DD44383631A0FC783001793DD1E2747A6929D79EF61B2C52FE18AA148F59E1017DFD41A0F3F884A97B6C7CD7F0BD59590DE13939D0B690A2797650FD65687E7300E71C83F14E7CC018EA83AA7E912CE09888B2DF6D1DF909EBF2624C491DB6F93752A28E0686CD78B8C461B52159380EA7DA842D00990B311E75C82E4793CA72EEDDE1890C1219A87A30FBB2E09E91F2B6D03458BC0FB10B71A325C1803B48F784EF4335060AF948884E259E68819C03790553418FD513CE76D64317D985C29740919D63421CB9DC88C516D0E0E9B158AB0B446553CE00D31A989A81AC6D724B4FAEDE4B0CAD47858335A9D07519EC09182F1686507726B1AA39E8B634C1572FE7F2B5C2B5BC3FD415413E56D88FB3CC631F1391631828171539C1B2CC2BA2018A289E0B077A24DF057025F8C13BF017C371E3A3D88722E028ACF222BB41FE994F3C95182FED26EA07A2D5018D85972A7F95D45EDE6FA7E1B9F516821BCE7C8131F8E14FD39E43C623372924FF5DEC595E40DB49D90BE8DB8D901C457C81CD64EDE715721A3557D04D2FF0A65FB08F016C4552E266B47AB392108372908E9DA50AFB4D9DB28DB1CBA0F59983721CE7A288E37016F45CEF67114A575618C77EC1E8D3F738B754F6338C701C71E64455DBFD18290BEBD8736A49FCF4650E5CB480D79BC4ECB012722BA8D1BF72B50467A17B284F741FA57143DF851ACE259E4F0EF654831BAEAC696C440CF70C093E921FBA83E3F9D5C6BFF637284D3A264247F793C6B0639E0681850963C8D2727843D9E3EE057811FC477035B13DB35B5DE8364D76B72F4659DDC17631B8DAAC26BA0C86A091B5A5149A68B6E9B10AB4E8D012414E2291D68E2D3489EE2615D48846CD29F426ECD3364F11B1D03763D5785C4F565F29B03FCAA1A17F84E2826EDCA1B734885C4F3FCE87B5C10F25841B82364DDEBE3BB8AE37EEF989D74CFF1C4B63882BA9F434525C38248CFC64D538A812D22274B131285A9D43BAE2660170A5F1313DF470694DDC59F45EB8A18D3EBC95105AF781BE2F8B382B81579D15CEA3429C6F021B4F9EBA918D71B8AF1D90A9701C611E4B8BF39D6F373E97B9D7CAE0FD15C1B386B06E28267E3FC4824A6FE7E10AD488542D9DF8B736F4579C93EA494DF8D32D80790A89721E6A9C577BB26A58EDA85F4DF77C8BAE825327A7F869CB8D8474ECC9E13C498424E9D35A3FC8445CED86E66180AD04E9212B83A74E4FC6B053981FB9B90FE2B32F97F08E9F3A8566C6F0C6A3FF01FC8A1945E860E5C67850F390619087B05FF16047D33E288A7A9E7EA56245A9F4419F80E86B6BDC7659D3F8EDF06A45F09227803C521B2F835C533DB817720CB5A17BBFE018A730D8500730227D9E37F8C8CC2BDF20F73A2E0987F2497337D9BBCE9DDED324E2E073036DB1A93B6FB7314052A2F4062F472106406B28ED69FA390CEEC0A42997BC6C7F35E2073F8B641E67FE2E4D298F82404525F8F587C7B716113B29A65ED81CFD9D274C43157001E208769DAC975F7B6B2BB1BFA738D3C649DE442979911463A4A86138EDEFE2AD98D338E7212C4C1C90BD547B520C42F91C33DF6255DC2E031BB1676612992A074FF68040C9F420EF24388E3E616F131FB9D8E9C3ADCDB547C36936BB09E255B42E2BEC905A1C690231717925D1B633C5B440F7E4D709A2B0FBD807EB6A30D8639AB5046ABAC442C33E18DF1AFEDE4FA337B05679177AD9C9086BF4481C3C791D3BDAFE8C429FD16A4C31E222743CB019B20FEDE4BCE32DBDDF23E1FEBA71FC6B5F6396DF52E88E7FD2408BC279EB52E54C7B1A29FD7C5737706C1AF4452B213594A67C4FB10779639889258E6701B04EF672AF729D58AEF27507A7B0CD4ED57C83061164AD73F089563502694B70E42FDC6A976A4CBDAC9C5B63D48AF8C226F64F72B61BA916E72B6E95031D1EDC84A1E41D2B01B59D027A38F63C057A92FA2F1E20F435CEAF8BE01E9F0B8D72FF9308C714CCD043D89602E46717E702C821A0FC743C7A3575AD9C4BA86B4151DB828063006E9C2C9412013CE511107EC2AA4A877C7E0269301EA1E720DFD45F17904A16DBB32AF4380D4D9F297E2DAF618D38878E6D9E4D4BFC76182ED8967EF4530E938997B47C63C9C0A848697155531E87D88533AC8B8E4B238678EBA1395289D85AC4C5B4CDC35A6DD48215B57F501BF8D3250269A39725F0CFA9120F6D9E412A7F1887BA6C7A4ECBC77A085F56E34EFAF7C9AEC178E8B6BDA90F17091B3434BC4580DC61D691D15E3BF805CBDD32FC1FE630CD421911AB988B609B9452FA020E0575054E39B68E54D942A08F3624C746A4CEE283226D3C816D10B54C6F55D2DE33090C3DBFB628C8EB37D0061B76782303E6EABD71EC75B10178F23431F9793DB70413632CE5B586A0E91953FF48339AE0E0B7425AAF7EC40C8BD0B89E9A7D11B4BACB4AD14DBC8D9A212723C5110B222BFECD1D73CDD40ECC7C9CEB763FE97A250741F0A33BBA0B885AC33EF43D5478DBBE3164560B18ABE9EA7DE283D41FDE68767D062FD5A107918F5AFA41912482D9B23AD3F406C7A283A7F82AC03A62107DAEC5FA1D52B0BE1AE884F6F0C1BEA96BCBBC865E57DC0DF91D3722089811CFE399F8CB91C7074AB18FC056F279DBC05A5EB2B72A0EE21A4CCDF85ACD737C828BE19899D6BC92E41E23816014EBFFED3DC32B2984C1FF5EF4FBD1F254DDAC98EAFB7DC98E3769233468E5E589C8CCBC62128D48D00ADB121E45D7903B57BC29B184E2E983925C1D641BA0DAA3742BA118570AF46F9C1F7225D72985C16341F9504A418BC4DF07872EACBC1C56E540D6490D98B94B571DAA5E43A53C306EF267385D1C5C5BD5E048A637EEF9939CAF5607DC8023E13BF0D93BE53CCDDB52493913EBFFB7408E656562B9795D6AEDA59112BF1437291474710C46117BF8BD07A0DC4A9D6670E6B7B1F8FB7282F40AF876821C7BF7CCF51B21BD68738D0DCE7F201731BD4EF876C421CEE369C6C081CDE69FCA7098DAD79A0133BE3F32390BE8C3682F6900BFFBF8FAC8F95FD5BC959E2A9083876C4005BC91157C7CEADF80D2FCC118FA0776178CBCD58F2FBC15AC9A171C8332B09D841BD6731BE989325A0F13E736933F2A9979E82680312CC1B31F7233D301B15F5BE583CDC986907F2190F92F38D8EC68E43C4F7AA7751BF11BE0F89AEBFDB8571B1EEE7A0FA00CA653A03DE8282818F1413F7A79D7EC86268021F2487D34D11BF56CB9C669F77A0561BE8849DCD56F246F697C8D1CC2EE09D6477CA04682517E73A297C945CEC6182195157C5FD0971884B0226001F0C2B685DE4FF2C6368617FD58E7A59BB0AB910D83B5D5C72E5D49D8BE55AE3998399E80139CC6D54F1DD7B9F3B21FD23B222B32212F0A9F83E865CC163405962AA83640E7208DBE25323EFD47048DA5537E60A57487F1311B78C662472ED841DEC3672ACCC41428BBFCBACBC49A273707A0D0DF3CC84D4F82F26FA6BDB502DEC8A10E30A59D51D64A068B179965C80D284E080750BE41DB98E9FCD20BFE6C5052376AC7B909A28A30FDDE470CE0CB2AB76946C00FA38FD57A19E3170755B848A4936A0B7A61C41B0A003BD63EC32B41FF36DC06710983D9BCC0D6F219751C2E05B6156063D0C541F230700F623A0EC893501D7205572BA6F6119ACBDEA4EAE426F5EFA33A8DE8BFEA383930BEB51E5B5AF1DCDC9FF396B0DF995A09077C4DA21FE2EF5EF727D98EC2F5688E0D390487F15892C562E32810000003449444154887B1A2B93FE5DB56D0561CAD6096979716E717C6FFCCF7F6E6B216D1EA0AFD36D9B5EE5FDBF6CBF6CBF6CBF30EDFF012FD9E2CFB895549B0000000049454E44AE426082";

    public static  String TEst_finger_data = "0a 20383261 37326239 34626531 35343435 36626639 30373666 38633834 65323664 3410ea07 183a2800 3201303a 0042a541 89504e47 0d0a1a0a 0000000d 49484452 0000004c 00000064 08060000 002c68d6 70000000 04734249 54080808 087c0864 88000020 00494441 54789ced 9d699856 d595ef7f a726a098 8a414085 6082e010 704c5a04 04044549 1027d4a8 5171202a 82888a0c 65312308 820343f7 edd8ddc9 bdb733dc eea4738d 6d478d71 4a8cc621 6d881a87 d6288ec8 20321654 d5be1ffe 6bd53eef 70de2a34 cf4d7f70 3f4f3def fb9eb3cf 3e7bafbd 86ff1ace a9046bf3 21cc8764 19845990 90d7e643 7815a804 fa01ef03 9d808f51 e726e0fb 45ae03b8 15c2e28c 73ad6d33 207c027c 19e8084c 6dc57897 42d80b54 db357767 5c730d84 edc00168 4d0b4b8c 5df4c42a 08af00df 6de5222f 87d003b8 3da3ff52 083b80ad c04e5b40 67e013a0 11f8927d ce6fe5fd 26410840 83fd1d0f 4c2fb196 3780dd40 05d00d58 96d1f70e 082fd9f7 3636c783 81eb53fd 3fd7aeff 25da6208 0d68779f 430b2a03 b6014703 935b31c7 3910de07 02701c30 2de39a65 10fe0b49 4377a006 985d62fc ab20ec03 dadaef46 5a984c2d 844fed06 ed10d53b 00eb11eb fe1d246b 21fc16ed def72059 0861ee5f 60236640 d883b8b0 0d30d08e df5042ec dfb7ef1d 11770460 5146ffcb 209401f5 d6f76f5b 39e7a40e c25b3678 400b6f00 aa803e76 c3691036 a111dba2 ddd903dc 6537b90a 42930d18 807fcabb f9f510b6 da98fff0 1989b91a c254482e 87d0d6e6 f62eb0ae c878eb4c 05fcd1d6 d205f80a 7053c6bd eb206c03 0e016e6c 617e7f15 919c623a a81171aa 8b6429f1 c86ff320 bc833661 90c62c7a ed12089b 91fe6c00 7a238eca 376cf740 781a1177 edfe2afd d6b63510 a640729b b1b74fa2 d6f45296 1168a9dd 6016b10b 70670b63 ac83f09f c05ea02f b0a085fe 934d2f55 db357d80 3976cd54 53415548 0da5a561 3184ae64 0c7ead2d 78975d78 34f006b0 c3ce2748 31f705de b6dffd81 79902c35 c57a2c70 9d8d7f9d 4de4cbc0 47c081b4 6c11eb20 b8fe9961 8bec67e7 a6423215 c2ead418 53211c08 6c04ca91 dad8818c 4896982d 30d1ed86 367badcd 73b6a9aa b4fe9b07 610124c9 1208eb6d d19d801e c804f706 fe4cd453 532154a2 9df9bc98 6a2504d7 27d740e8 49cb9ce1 ed72c356 ff5ca2ff 9d109e43 fab4cc3e 0f4084a9 fb9c73ff dc3aecdb 103a23b9 77c50cb0 1cc22dfb 39fe6c08 1f2331d9 8838b8d8 182b4d02 9a1087f7 a5b4fe9b 61466b37 e2beb6f6 d787425d d6522bda f972089d 90795e0c 89ebaafc 7e690265 b57b203c 0fb4077a a1058244 b8b5935d 0ae175a4 b4b17995 236e7fd7 8e1d87e0 c7752d8c 596b167b 37eae89f 1536c78e c0f2bc31 ae328893 d81f4b0d e1d6db4d 7b20d8b0 0e925a08 efd9ef23 1106eb0a fc8fcfc9 9db74398 69635c08 a13fa55d 92fc360b c23248ae 37fdb617 e9ac32c4 3d8380ed 48afde09 21cb13f8 0e8476c8 030111b0 0a790f69 26596a1e 43b204c2 87e8cc3d 45065d6c 7ed63604 5401a699 18962102 f647eec6 0da6785f b79ba631 d21d106e 6e8120cb 0d13b616 4466b5cb 21ec461c d315110e e070b281 6fbadd06 e165a4f3 5ccafc5c e6c58b21 74015e45 84cc72ca d1f990f6 b7f241a6 eb9b2380 df239db3 1581c94d 887bef86 643e840f ecf846e4 ba7c647d 2b10ccb8 eb3312f3 6a832ae5 68335b03 59a699f7 d08388cd 12746178 11edc07a e06b643b b37fadb6 064202ec 43d6fb43 047cdb13 3d92fd19 6f3a849d 48942b11 1177503c e2b212c2 db486726 e7436883 bcf22c2f bed6946e 39e214ff 1c42f4e4 6f348e7c 07e1b7de e844d698 7f897691 419dbd08 3a34d967 3b44c8fd 11ed3946 940a8413 db21fd97 df2f73c0 eb206cb4 490c04de 04fe5746 ffbb21a4 23042b20 6c01b610 8dc34d36 9efb9393 0c24ba5b 5486c433 417ae753 a4bc8fa1 75b12f6f 4b8d88db 902edd67 6327c060 04621d84 668d310d c247c0a1 481daccd d261575b c70ec822 cef96f20 961798db 5545e4dc 96744fb1 36c330de 6ea225ed 44765011 64a8fe84 746c250a 2a246743 3806b15f be3b90df ae34b977 455e8e64 7e91f973 09b22cce 5593cdf1 fdf15f80 f053cd8d d9859ce7 36488f1d 85a2bfd5 c04a483c 86558638 a436e3de 0b5104b9 ded6d308 fcb015f3 2cd96199 79f08e8e f72211ed 0bac6ae1 dad566f1 5e27ea17 908e38c8 165989b8 b912e99c fd75d6d7 1a82df64 f7e887ac ea063b5f 697f0753 da77bd1d c2b3f6bd 06f9bc35 1407c105 07e69a6f d989ec18 7d1a747a ab85b004 92b9b673 fbc355b7 437886e8 fb95212e f2fc414b f8ad549b 056103da a80e48bc 3a93bde1 8b4c0c3b 21aead26 d70227cb cc7569b2 bf7f6b61 72171b28 ec84d879 0012930e 48ac579a ebe160ef 2e08ad01 8b59f7da 89c0e31e fb7467da 432feec8 cf34512c c5f9b7a4 ac7d0704 9fb2e268 de265870 20206c98 9c0fe138 0afdba19 6600aa81 cdc0bfa4 acddca56 12e0225b b0734c82 cc75b128 696bdb12 08efa2cd da8eace0 cf6cbc73 207c19a9 8e775188 e7188a8b d6950664 2b1027d7 d8dc5694 98db6cc3 828074ce 8b36c056 c46dc7b1 7f51d062 adce220b 4b6d9cc5 e68a7d48 ae6e0b44 a37110e2 80d6443b ceb345fc 9f8cbe13 205420df 7046913e eb203c81 36a09218 01fe12c5 7ddbe603 e3219423 ebf3a322 1d271ac0 dd8c2c0a 28faf029 c2517719 b6da6793 db1fec84 ae0faf21 cbf62c22 a0e7167e d08ab126 a0bcc251 142af8ab 50487c0b c2945d28 1e549c61 7eb3277e aa1111d3 8186e43b 10febec8 c5d740a8 27666d8e a6f5dc76 b6edfa91 c07b08bf 2c83d001 e98c7510 5a933e03 11f215a4 3f9a8061 14e71490 d57c0f49 482fd429 3f837591 adab0312 c31a8a07 2f3df7b9 1971fdbd 695fd2db b9107e62 78ec55a4 03b6d23a 7c52acad 80f007e0 10a45336 13634aee 5e75453b 7e472bee 31c30cce 56a417ff 869639f9 4a08c532 55d79b2e ec88a22d b7668c33 cb08f721 a24773a7 52ca7c21 846e0853 fd975d54 63931e00 bc8076e1 23244259 fa04a255 4b735cfa dc1308f3 0db4314b 71e21203 cc0d36a7 0114faae eb20fc86 98713f9c 5caebb09 c29f9151 3a8098e9 be0d42da d399470c e5176dd7 98efe719 961ec05b 3668b1b2 80b5108a 59a35926 9e4bf783 4baf356b b709ed6a 6b94ffb5 268e1dc8 d6798b50 82661bb9 ba7a1d84 5f23ddec cabf3351 0cd32d01 05dc3613 2d9513e9 38b25d8b 749b6fd4 3f0271c5 1ee0b768 37df26d6 405410ad 623512d5 b6c02b48 47764010 601a04f7 f1ee325f f211c441 1f00ffbb 85397ddb e08c83d5 fcc472a9 36d18cc7 36a42ebe 426ee224 f14e47d8 8facdd9c 448c62be 6f7d2bd1 4e1d8a08 d3065998 6256d65b 1d8a8f63 636d45c0 777f0a5f 3eb66b07 533a6eb7 06c22f6d 9e7bd086 e6c7ebb3 dadd101e 431bdd09 188ad443 c98bcfb3 c5b9a37d 1aa27c96 82fc3cad ce74da4c 0bbf6ca4 e578d662 d36187a2 455590bd e1332440 bc8f006f 85fd1d0d bc089c44 b6014903 f09c0e67 1b3b3620 3d7514da 414f22ac 82909514 7525793e 848e48f9 d720100a f0209a71 7784d3fe 4c6e8ef3 7653f8fd 902ed960 93eb4feb 2ca87344 409b3b80 6cbdb9d6 507eadb9 725b8025 90cc8690 75cd7273 219b4f2e 85500a67 5d0c6197 2da62fb2 885efd72 24e2bc35 90cc4029 f50d14ba 40ab0c9c 6eb24525 283e550a 5b79bbc4 f46c77e0 7fb68280 93cca368 8f889e15 b65a6dc4 db8974f7 db8851e6 a23ceb66 728170d1 41e6a2d4 d37ac4ee cf23e5b9 03e98d6d 14df754f 94b42643 946ed7a0 64c95da6 f0cb281d 249c680e f17a600c 2d6782ae 34e25501 c3c9d67b 3eefb906 96f7daf1 dee42541 16a3b857 5ba48001 1e480d3a 154223e2 a835456e 36d960c0 a708930d 4004ee62 c7da136b 1edea565 2b5787e2 eb35c828 1c4b7157 66358407 11d79723 7db4a485 b197d95a 5e4598ab 37d9c9df 3a13c30a d42107b8 66253bd7 d8a49a90 5e3b0225 3a3ae8e6 c958e388 d1487ffc 1ee88920 c35462d6 fc7c7382 77909b4c a9a034d0 0581c6df 5bdf9f96 e8bb0ac2 93c822f6 203b9ee7 ed4ab3b8 87523a2c 3417c5c8 7652a4d3 8d105641 729e5986 26449c26 e00464c5 d2fdb300 ab07144b 4d78a2dd 03a40bbd d2b15494 e452d339 83c8e6a6 b9e6ce3c 6b0bec46 36575f8c 92d21fa0 0d3c1011 3c0be614 75baff2e 75fc5208 c713eb46 d7a294b9 eb98b916 be79d906 3b0eedc4 cb485f7c d668e97c 54be3084 429d33cb 7cdd06a4 269a809f 97b8cf45 10fad89c c6900d1f 56a122bd 3710e1be 4b61096a 8b8bb9c2 76b42362 f12bcc0c ff0c9233 8c58d588 481d51a0 712e8ae7 6f457aac 01eda0b7 ca161698 df66a260 6623b9a9 3e8f7a4c 338c7537 24f71834 ca320477 42781c81 ec03299e 499f6461 9e1dc872 7626aa8d 0494ca1a 4034bde3 8d103dc9 752bae31 f6f5036d 8926b7a5 62e05b89 b1f50ae0 ab089b79 0cdf1316 2794582c c0594690 d328aeac 27d97dba d3b27139 03d59a1d 45f1486b ad59cb7d 68b35cf9 17b42b50 30d1e5f8 3ca37823 702ab968 ba0e422f 849ef7b7 d6cadb74 08774272 21ca0724 08026481 d6f9c651 35f6fb03 b2334e97 9855aca4 d008ac30 63524fac dee9466e b1de1ad3 b3af13c1 744e1b6f ee503562 db931007 bc8a58de d1befb74 8dc492f4 1f427296 5d5f8e76 e62148ce 319cd588 625859d5 ccf96da5 71d3a336 fe611486 6f6e4789 8dce08be 5451dc75 3b1765da 3d74948f e8271b67 3621d5d2 93c224ef 025231fd 4b0cdc75 44cafab7 14a6ca56 43f8779b 14c45ab2 742a7d0e 0a53bf8a 087d0cf0 b47def84 f4427b64 89daa370 516fb4cb a57cd479 66dabb21 7f7020c5 4b47c79a 85ec9737 af7928fc e30528bb d1460fa1 7003cf37 aeea890a 5dde2323 e25aacdd 6094af42 31f16a0a 5371a52a 11574028 e5f65c82 92b18d44 6cd61781 d052d584 138805bd c71381ed dde67e6d b131dd60 fd246fac ab4c4276 d9bd8a89 fe0566f0 cad006ad a048b4a2 16c29bc8 fde989f0 ce5b224a b33e3b94 c8d2a799 d87445dc b6ba95e2 d652bb19 15b5ed45 5cb80b71 687e41cc 0a14fc6b b2f38793 1bbf1a67 1c9f4073 71f051e4 eae18926 5d50c899 d799d7d1 8824aaf9 c4aad48d 4702af91 eb3c2f32 38f147bb a88ca820 af3587fb 0da2188f 3164df84 c4d26b2f dcfab664 c1f2db58 1befab14 2fa19a62 d8ac1119 8b74a6e7 4613c76d 76be3b85 798ab38d b0fb8013 29cc3ccd 43e50409 648bd46c 14d2f5a4 4339daa5 2ce47c9b 59d3a590 b8c7e0e7 4e456548 7d90eefa 905ceb54 8544a335 8571d79a e5fb10b8 2fafff6c f3ffca10 06ec46a1 ffbbd45c a8262441 0712ab7a 3e20869e f203a133 d34a3fdd 5640780a b1781972 9c1b816f 528892a7 a0b2c6bd 486c12e0 915672cf 0ad3437f 40d6ab0d b1b0a41d f0af2d8c 7393e9ab 7dc8414f 5bbe8586 259f26d6 b81503a9 130d64f7 2797b08b 507cae1a 71a4679e 0a06f88e b93e3514 3aba5ecb 7abae1b4 1aa45cbb a0c4c344 0807230b e819a8cf 52af0fc2 823b51b4 a30a8972 5f0a636c 75a6eb3c 9ed59d42 eb7ea771 d4365b70 a7226b9b 01e10524 f2e9e268 c7a00902 cbc92ca3 700fc48e 3568a77b 21eabaa5 5a8a1ef3 f3897f42 f17ce5d5 286dd50e 715d62df 3f459cd3 014507fe 8470551b 249abd68 d9efbc04 85ae0721 2892ef11 2c479195 4aeb938f debf6556 2f589f3e 1486c1bd a6c48394 535010f1 13b421c9 021be410 0a1fccbc c22cc450 e037c0e9 1446462f 410f416c 32026d31 223c94d7 afd694f6 8bc4e211 6f9799a5 fd001984 0114af2f 4db77128 29d311c5 b5f29f40 3bc3ce83 7065bedb 7687e9ba 8d88783d 11f8bd07 927110aa 101379fd 4783ddab 60520b8d c2ae93be 4e71dfee 660877a0 78989722 1ddf8a85 966ae95a d9b34c24 1b91e2fe 978c71af 46b5fd95 6843d33a 76218af3 27c8607d 0db82d03 6f7d8c7c c5eed6ef 4648ce36 efa0dce6 f055f22e 9e64faab 7b9109ce 44697f0f db764504 6aa2782d ecddc6ca 0b4de7b5 43fee6d9 089a782d ed1eb4bb 59f86d96 8db31789 c46efb3c 985ce850 8732dc09 12d73e08 73f9062c 81f03ba4 ebca9191 e84dccbc df6a2a27 41d2d60f 79251fd8 9fe3bc04 94ebdb8e 44a9d853 62df320c d6601339 8a5c77c2 1328736d d295482f 795aae58 26e60a54 dbd06493 38c8fab6 43ba6d7e 094ef5c8 c7065496 f4bd54df 05b6f07d 46b06239 d2335142 a78c98ac ed69c47c 079543b4 478cd309 19b0d969 1c96554d 339af890 f8511477 1fce3468 506583f7 24d7caa4 c7ceb798 f94f9080 38f9791b af117161 07a41af2 ab05971b a479cb16 db0d59c8 0b4c4dec 429b7cb8 112f5def 35d98c93 43a18310 0e6c6f44 7bdefaa5 2dea55f9 386c89c9 7c3b9b60 054a5ab8 42f514fe 32eb5785 7457a967 17cf41cf 5327889b 7a22cce3 31a677ec 5c0f0aa3 031e880c e8fd183b 6c4ea750 687ca69b caa8064e 26fa966b 203c4c84 270fa6ae 9b6d92f3 1ae2b6fe a8207826 7a28ed69 9b634fa4 0256b92f 79328447 51c6f969 a3aaebb0 3b6cd07a a47bda11 4bb54f20 37063601 c5b31cb8 8e375177 877abb8d ddcf16f6 92fd5e8f 749417e1 6629786f ab213c60 440f4817 b5451ec9 27284f9a 0552df46 9b9cf610 66a10cfa 1e9b4ffa dc55764d 5b14254e a69b49f7 58d74ea2 f37abdf9 67fe0694 91e4ea16 17b76fd8 18bb9125 5907c9ad a6cf4ee3 b307166f 412f10c9 c267d34d acb613cb 19fced08 1e5aea89 c233ed11 c05e8f0c 4e254a20 a7e77635 8aad9d4e 74ce1719 97bf8198 25c7caa4 fdb8d1e6 501f44a1 a8cc3797 642f22d0 5376bc01 781415e4 79e9fa09 08fcfa43 9aee837e d3bc8546 1493da83 1cf41ec4 07af3aa2 8d2a27a6 e40e47f1 b062cafc 4a142af2 6aa17df6 d9d6163b 88987b7d 950846bb 23c55f8e b87e1732 808ecf06 1ad15f70 828d8670 2eb178cd 9feaff1e 4a973f81 22a533cc 123e4634 dfff4c76 a67b8211 658b4d66 2f32d97d d04e5721 8bb8c0ae 9d8fdeff 03c5d377 8b0d1ab8 d7508342 e66e0c8a d57e5c6d 2a659311 fc44641c 12e04904 5c3da7d0 97f8ccd3 16bbbe0c 18452cfb 4a6642b8 3d75c3fb 102bbb0e 3815250a 1e3720b7 1921f17b 53d76c32 e2a52ded 2cd38720 d6ef4e2e 001e0761 34318536 0342a992 ef74bb0c 856b1c13 7a222521 22f67c97 6735849f db355f27 ba4d1790 5b1bd70b 25ab9f27 8683aa80 f168639a 075d0ce1 21c4490e 1fc699d2 7e1cbd5e e121c4ba eeb95f6a 28bb0b02 820b8899 eec510d2 21e769c8 3177dd70 36846148 9f6c413a c28beddc ffdc4734 129d297c 23c03ad3 b19b1087 bc4bacf0 f6b87c7e 42f63cdb e076c865 aa46dcfe 2612dfce 88d33a5a 1ff79f13 646113df b1b7902e f1e0dc99 e6163c0a c9ed10ee 47b2ec08 f8b7481f d403bf80 e43253c0 8f17e192 b1a8f66b 980897f8 9b08deb0 ebfbdb62 db925b83 d587f87c d37b880b 7620fd72 0cd9cf62 d6a1d730 788c6b10 510fdf83 f2925bc8 7daaed24 e0613bde cfae0908 f6d4239d 57e9731b 8a9e685b 0bc97223 4e078467 664032dd 50f99176 835f00e7 10dd8e29 66044610 65fd3a14 ea2eb385 a7b3e917 9a5e0948 a72c68a5 2882acd6 af6d5c7f 11493970 16853eef 02830b5b 904af0b8 fe12d3cb fb88e509 23edf311 a423cb81 5f1a1e6b 4496f875 2039d376 dfc1e708 14193d05 99dce11a 3c418306 80c7ecf7 4a08ff86 4c761a10 8e35f4df 96d687a3 c742f80f eb57ea2d 00de6e46 0e732714 21f53a90 36c8b054 a130d234 482e369d d706f9bf ee80bb4e 76176924 aaa05e24 5c4a2512 cd2ae4e9 784d5b73 1b85121c 7f0fc9c9 1006129d e271a80e d695e5a5 c6416389 5cb51a05 e10ea478 54e04e08 3f059eb4 73d38d03 8e40a0b8 bd2df64f 36d972bb ae0a4180 60df4fa5 b0280604 2bde2662 b2e14688 37ecef53 6244e244 727d476c dc7411cc 68f41044 3952fa37 a595fe29 289ff708 24a7980f f9b8b941 0fdb8d1d 819f6ee7 c713c5f2 141bfc2b c40cf32a 43e44390 0ef810e9 9ebb0d9e 3c8e94ee 7fb45224 af378ef0 f7847542 38b1582d acafa713 b969c1f3 50f8ea00 44fc4ab4 19dbecfc d7c9f599 ddb5eb87 18299966 96e61729 77662b91 0b864218 8238eb72 43bdf548 d47e8432 467f406c fd64ea46 2b20fccc be9f4b6e 41dccda8 82b058be 7231aa91 f58dc87a 7fe2374c ecbdd06f 108204ee decc82c4 a5a082a8 467c8d9e 7ce96ec4 688338fb 1d1bcb7d ca7928bf 51813636 190dc17d bf334d47 fd5ff4a6 a3fbc8d5 4da7a127 42be842c 54adaea5 17b951d4 f1c60935 48313f6a e7ea4cd9 e7474767 43f823f2 052b912e 726ce565 0763289e 195f6620 fb39eb5b 86b8ce3d 811bcc62 6284391e e9a96f9b f81e86a4 a233d123 790d71df 4023a43f e59bf34a bfd9c67a 9e645804 c171cf1a 083f46c1 bf1b538b ff952dd0 776f380a ed965118 a2becc26 f858eaf8 5862a171 57a45766 4392ce96 d7a210ce 4624364e d043282c 2ea9356e 00e9c3fb 53e74799 ca701db6 dbeeeb8f d48c23be 5262aae9 d6b6c82b 381171fc 282cbc73 3e4a49fd 1495983f 003c6c17 4f80f0af 90dc6580 cfc56394 6129d70f d7da4daa c8c56213 acdf9bb6 c35f4171 fd0f6d57 7700bfda 0f5801ca 7f3e428c bca69331 e71917ef 46dc3182 1830f0f8 5e405ce8 fd1cfba5 e7fd0d03 ed65a24f 73322801 05eddc3d 1a269c93 78ddfcbf dbf121da bd04f468 ca2129e2 79d6b937 b19e6c14 7abe7237 855cb51d ed5e316b 77b16d4c 1fa48cdb 239dd28e c25a8bdb ccfc9711 33549ece 0f766f7f 07e2cf8d 19ee3342 9f8c92c6 d7a02297 06c4bd07 2188b546 30876d36 d7d351d4 24b90482 d72b8c85 702a12bb 0b21f446 cafe4654 f238dd30 cd3b4405 7f8b591d 178f3b50 b6e6310a 13ba2741 a8464986 2506885f 4062822d dadf51d1 84b8e76d 5b482fa4 47ca5059 68fe9377 234d4a2a 51c4c39d 7ee79263 5363bc62 d71c4df4 00c69a2e ac42ee61 37c4fd4f 19314f47 b98be69b 3a67f9ef cb20a4e1 81ebae11 8203cdfd 2e907e6b fe7d2284 3114a2f7 a9664dd3 d78e2126 490fa6e5 c02188bb cb89d62c 1d0e1f66 50c2c71b 883c16e7 aa6e283e f73b84bd 3a224eee 848cd36b f6e9af93 3986e6f2 52f77092 32bfd950 fb5c0861 708a58a3 8c586b20 9c605e81 b7911046 a47e0f31 2b6baf2c 0d8becf7 1ce3a471 a9be738c 58470267 e4116b89 5d772284 93205c64 bf415ec3 f721390e 657346a6 ce0d251a 85f75199 c047c427 e53603cf a0b0d511 469c978c 5009b2fe 2ece9f20 8e77a0bc 83f8a471 4e68e56f 4c147f6a 00f69776 fc5c13c5 675348bf 9e98961f 86eaf5cb d1d322eb 89566a38 847e44fd 36c6ae9d 80f28823 4cdf7986 7cb7169b 8022122f d8c2daa2 8065ba06 e264e4eb b5211aaa d30c6735 20c77e80 11c0c34d 9e57d89a 1a370dcc 4f21163b 0f47986e 357203cb 3c110062 f7c4767d b92dcadb 06e49b79 db496e0d 4313f004 2447ebb3 f98d9883 916feac4 1a6a9c75 06f1c187 06dbc17a 84d9ce32 a28e4721 f07b2119 6ef7f8bd 6dce02e3 ac472139 1d71cb04 3bf62024 bf367df3 062a7659 09c94536 a78d88f3 fc99cabd 766f6fe5 46ec4fad 1f346fac 1ea672ee 4a3fd839 c2b8e21f 75a35081 ea0de648 87712c71 a7bf855e c9b7083d 10319098 011f0ce1 5b289270 23aa4a3e d826d51b 7808ad72 3885fee7 c966408e 20b79a7b 9281cb0e c897f588 eb681406 ef63e3dd 8fb82841 a23a1089 e5fb46fc 038d501f db9cfa92 6b4c86db 663e953a 56e63ae9 d414b1ae 47afe6fb 47fbfd1e b138e377 48aed362 9110ebba de41d103 50215b20 865d9e46 dc7b18c2 65eb6de2 bd8915d1 1321cc31 4e390cf9 7c7b9198 39077d17 92b39115 fc01cab2 8344ba11 c5d67e88 446d3412 ad7abb5f 47242981 f8ec403b 23da5328 b5e7ebea 8f367642 ea58d93c 73131e4e 11e03f91 0b014a56 1c426cdd 50e8c75b 2d84afdb f79966c1 9c1baa80 67ecfb45 10baa31d 7c0e89e0 069bf831 48f10e31 3cf76ba4 33d723ce 0071ccbb c8109c86 5e4f339e e6b73271 3984f6c4 cc510312 a7e78849 947a23f2 fb0862b8 1b350659 ca0e28ce efed1f20 a926befc 08bb861e a90323d0 9be6dc35 49bfe66e 98418827 52fd1f22 ba4bcf20 8b022a07 4f4744df 24e6fbbc 4aa7da3e 67415241 7c57f413 90f442a0 f52394d9 7ec9fa82 744f2d2a 4f78c674 d5cb4694 ce08a8fa 3b7af621 3d558d36 d09fc8dd 81b87bbb 9d3b0519 94bd28f8 99a2873f 8d1c9a09 e6a595e7 9aa21f64 9da74038 27451c8f b97bd979 2df12de7 d8cd1c7f fd2a75fc 5cf478a0 b7c188dd 2172eb7a 5bac5baa 3e287c74 90ddf703 64f6cf41 5cf508d2 31970b76 50893665 18caf21c 63d7ed24 beabf548 bbafc386 7d481c3f 011e2026 3c362214 0002ab17 d2fcd6d0 d08cc340 3ae36948 fc5d5a81 f8a2da51 a6d756a1 2c1228b3 921e204d bc1da9ef 09313971 0b84e590 74b2c5b8 75f23030 28c576bf 2dc2738a 3b8d2001 217dd74b af204b78 12e28467 903b5383 380d6441 ebedf760 e04cbb3e fdcec47e f65986f4 f09ba9f9 4f85e4e7 90ac4faf 770204b7 520e335e 41966494 e19a9f40 f218cad2 600b3c20 3570dfd4 f732045e d79ab575 48f22252 ac759034 225103e1 a880e2f0 d741d260 f7d9460c 0f6dd21c d84cacd5 0a68e3ca 892f727b c8c6f507 b04060ba 11a50267 42321689 fccb083e ac836403 f00d113d f9124a15 a696c4df a6917e9f 14e1bcd7 4ea4cbfc c1759062 f47ff9e0 aff40471 8ebf5e61 a981c91b 2009c8fa b44f4ddc 39a92275 bd57fabd 65bfbb19 d13dd037 c61613ac 8fffc300 b7a28f10 5f4de34f cf5522d0 fa351be3 71a45b41 aed163c6 e90fdbba 8711cbb8 36204892 df9a09e6 cf3fee42 712f90e5 f06323ed fb3b0817 f9c5ce39 bf2372e6 63447198 02490db2 82205de0 0f112444 0e73d7ec 63941b18 6cc4d9a9 31c276bb 477f64a4 3e46eaa2 27b278ed 10fcd985 a04313b2 aadb88af 8869027e 860a9f8f 403aa9c6 eeb3d1fe bc9d8c88 7e611e97 e5e830ec 669ed4d8 9deae462 b88b3882 a7d7419c d326f57d b37dbf15 15f23af2 6f403a07 5bfc1e23 c85263f7 2a84e6eb 20f1a885 3fedff11 11123894 79d30832 98f85696 3d480afc 91ea8711 813ba2e0 e1db88fb 2743f263 48fc4132 4f86806a c9ba119f 81cf2458 d7d47727 d851c437 8d971159 b5de6e04 122f8727 3d8822bc d8c4f24f a9ebdd38 7cdf88e2 0a7610da 55bff674 5bf44b28 c69e10a3 0a15882b b7dbf9d7 91e23f90 588cd205 71e04548 bf9d6be3 7d8abc05 5fe75390 b443899a 89a9e3ff 04c9983c fa1410cc 3330ebcc 078458ea 03d16a81 14ad7f77 cf1ee436 a55b2571 16039085 f2d644e4 c67b21e9 4814d35a 5b483d12 4747e8f5 c878dc01 89c39377 9114dc07 c9a53617 ff3f2093 21198a38 ef7ec37c 7f4495d6 3e8f5fd9 714705de f2839605 04f33619 12e7b62e 4476dd87 44029bb8 17a0ec45 7a020a9f be0f44b4 7c18e2dc 5b6db287 20a2b97b 331c4182 29f6fb02 627e7208 8aaf0724 9ab320fc 10928146 983f58bf 29903c0e c9c18888 c35169a8 57183d09 495f24e2 97a68876 0ee2dc33 f2f456ba 65120ce2 bb2b9641 d2d98ef5 273aa86d 527dcb91 4b03128b 0a943cc1 08e06276 8321f3ed c8673ddc 08f0889d af83642b d23da01d ee8a4471 1b8a90f6 431bf41b eb732f24 2719714e 8430535e 46188e36 bb1e7929 8b5384f8 91a90a37 462044f0 b061ae2c 9a942458 ba79b263 60ead8d3 a981ab52 e75c4779 14e10148 2a53d71d 8c44e21e 48e641d2 06a16d6f ee137ed3 1638ce8e 39a0fe01 241dd0c9 a1d66795 89a73f5f d416657a 1e4c11fc c1bc353d 6b219f91 2538eaaf d6d3af3c 43000000 50494441 5446e44d 6a7adeef b979bfd7 297a9273 eca4bcdf a740385e f8a9f9f8 05108e45 91dadabc fe93204c fcef489c ff9fed9b 8a96e410 e1568963 c8df942f 9ab55bbe 20cc17ed 8bf645fb a2b5aafd 3fa3c073 ad2dc95a 86000000 0049454e 44ae4260 82";

    public static final String data = "data";
    public static final String CODE = "code";
    public static final String state = "state";
    public static final String MESSAGE = "message";

    public static final String FLAVOR_GZNX = "gznx"; //贵州农信
    public static final String FLAVOR_NETURAL = "netural"; //中性版本

    public static final String FLAVOR_SXNX = "sxnx"; //山西农信
    public static final String GZNX_PWD1 = "gznx123";
    public static final String GZNX_PWD2 = "gznx888";
    public static final String ZG_SETTING = "ZGsetting";

}


